<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${package.Mapper}.${table.mapperName}">


<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="${package.Entity}.${entity}">
    <#list table.fields as field>
    <#if field.keyFlag><#--生成主键排在第一位-->
            <id column="${field.name}" property="${field.propertyName}" />
    </#if>
    </#list>
    <#list table.commonFields as field><#--生成公共字段 -->
        <result column="${field.name}" property="${field.propertyName}" />
    </#list>
    <#list table.fields as field>
    <#if !field.keyFlag><#--生成普通字段 -->
            <result column="${field.name}" property="${field.propertyName}" />
    </#if>
    </#list>
</resultMap>


    <!-- 通用查询结果列 -->
<sql id="Base_Column_List">
    <#list table.commonFields as field>
            ${field.name},
    </#list>
        ${table.fieldNames}
</sql>

<select id="findAll" resultMap="BaseResultMap" parameterType="${package.Entity}.${entity}">
    SELECT
    <include refid="Base_Column_List" />
    FROM   ${table.name}
    <where>
        <#list table.fields as field>
            <#if !field.keyFlag><#--生成普通字段 -->
                <if test="${field.propertyName} != null">
                    and ${field.name} = #[${field.propertyName}}
                </if>
            </#if>
        </#list>
    </where>
</select>
<insert id="save" parameterType="${package.Entity}.${entity}">
    insert into  ${table.name}
    (
    <#list table.fields as field>
        <#if !field.keyFlag><#--生成普通字段 -->
            ${field.name},
        </#if>
    </#list>
    )
    values(
    <#list table.fields as field>
        <#if !field.keyFlag><#--生成普通字段 -->
                 #[${field.propertyName}},
        </#if>
    </#list>
    )
</insert>
</mapper>
